package com.ruoyi.client.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 作品信息对象 work
 *
 * @author ruoyi
 * @date 2024-06-28
 */
public class ApiViewWorkVo extends BaseEntity {
    private static final long serialVersionUID = 1L;


    /**
     * 学校
     */
    @Excel(name = "学校")
    private String school;

    /**
     * 报名组别
     */
    @Excel(name = "报名组别")
    private String groupCategory;

    /**
     * 作品名称
     */
    @Excel(name = "作品名称")
    private String workName;


    /**
     * 参赛姓名
     */
    @Excel(name = "参赛姓名")
    private String participantName;

    /**
     * 所属课程
     */
    @Excel(name = "所属课程")
    private String belongsToCourse;

    /**
     * 联系方式
     */
    @Excel(name = "联系方式")
    private String contactInfo;

    /**
     * 实时平均分
     */
    @Excel(name = "实时平均分")
    private BigDecimal realTimeAvgScore;

    /**
     * 提交时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "提交时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date commitTime;

    /**
     * 浏览次数
     */
    @Excel(name = "浏览次数")
    private Long snakeCase;

    /**
     * 课堂识录（json 数组）
     */
    @Excel(name = "课堂识录")
    private List<String> classroomRecording;

    /**
     * 教案（json 数组）
     */
    @Excel(name = "教案")
    private List<String> lessonPlan;

    /**
     * 教学实施报告（json 数组）
     */
    @Excel(name = "教学实施报告")
    private List<String> teachingPracticeReport;

    /**
     * 专业人才培养方案（json 数组）
     */
    @Excel(name = "专业人才培养方案")
    private List<String> majorTalentDevelopmentPlan;

    /**
     * 课程标准（json 数组）
     */
    @Excel(name = "课程标准")
    private List<String> courseStandard;

    /**
     * 其他附件（json 数组）
     */
    @Excel(name = "其他附件")
    private List<String> otherAttachments;


    public void setSchool(String school) {
        this.school = school;
    }

    public String getSchool() {
        return school;
    }

    public void setGroupCategory(String groupCategory) {
        this.groupCategory = groupCategory;
    }

    public String getGroupCategory() {
        return groupCategory;
    }

    public void setWorkName(String workName) {
        this.workName = workName;
    }

    public String getWorkName() {
        return workName;
    }

    public void setParticipantName(String participantName) {
        this.participantName = participantName;
    }

    public String getParticipantName() {
        return participantName;
    }

    public void setBelongsToCourse(String belongsToCourse) {
        this.belongsToCourse = belongsToCourse;
    }

    public String getBelongsToCourse() {
        return belongsToCourse;
    }

    public void setContactInfo(String contactInfo) {
        this.contactInfo = contactInfo;
    }

    public String getContactInfo() {
        return contactInfo;
    }

    public void setRealTimeAvgScore(BigDecimal realTimeAvgScore) {
        this.realTimeAvgScore = realTimeAvgScore;
    }

    public BigDecimal getRealTimeAvgScore() {
        return realTimeAvgScore;
    }

    public void setCommitTime(Date commitTime) {
        this.commitTime = commitTime;
    }

    public Date getCommitTime() {
        return commitTime;
    }

    public void setSnakeCase(Long snakeCase) {
        this.snakeCase = snakeCase;
    }

    public Long getSnakeCase() {
        return snakeCase;
    }

    public void setClassroomRecording(List<String> classroomRecording) {
        this.classroomRecording = classroomRecording;
    }

    public List<String> getClassroomRecording() {
        return classroomRecording;
    }

    public void setLessonPlan(List<String> lessonPlan) {
        this.lessonPlan = lessonPlan;
    }

    public List<String> getLessonPlan() {
        return lessonPlan;
    }

    public void setTeachingPracticeReport(List<String> teachingPracticeReport) {
        this.teachingPracticeReport = teachingPracticeReport;
    }

    public List<String> getTeachingPracticeReport() {
        return teachingPracticeReport;
    }

    public void setMajorTalentDevelopmentPlan(List<String> majorTalentDevelopmentPlan) {
        this.majorTalentDevelopmentPlan = majorTalentDevelopmentPlan;
    }

    public List<String> getMajorTalentDevelopmentPlan() {
        return majorTalentDevelopmentPlan;
    }

    public void setCourseStandard(List<String> courseStandard) {
        this.courseStandard = courseStandard;
    }

    public List<String> getCourseStandard() {
        return courseStandard;
    }

    public void setOtherAttachments(List<String> otherAttachments) {
        this.otherAttachments = otherAttachments;
    }

    public List<String> getOtherAttachments() {
        return otherAttachments;
    }


    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("school", getSchool())
                .append("groupCategory", getGroupCategory())
                .append("workName", getWorkName())
                .append("participantName", getParticipantName())
                .append("belongsToCourse", getBelongsToCourse())
                .append("contactInfo", getContactInfo())
                .append("realTimeAvgScore", getRealTimeAvgScore())
                .append("commitTime", getCommitTime())
                .append("snakeCase", getSnakeCase())
                .append("classroomRecording", getClassroomRecording())
                .append("lessonPlan", getLessonPlan())
                .append("teachingPracticeReport", getTeachingPracticeReport())
                .append("majorTalentDevelopmentPlan", getMajorTalentDevelopmentPlan())
                .append("courseStandard", getCourseStandard())
                .append("otherAttachments", getOtherAttachments())
                .toString();
    }
}
